Cesium添加glb文件

Cesium 3D地图
本文介绍如何使用Cesium在Web应用中展示3D地图,包括设置地图初始位置、加载glb模型等步骤,并强调了glb文件需放置于public目录下。

在这里插入图片描述

<template>
  <div class="cesium">
    <div id="cesiumContainer"></div>
  </div>
</template>
 
<script>
export default {
  data() {
    return {
      url: 'b20200827-3.glb'
    };
  },
  mounted() {
    this.mapInit();
  },
  methods: {
    mapInit() {
      Cesium.Ion.defaultAccessToken = "你的token";
      var viewer = new Cesium.Viewer("cesiumContainer", {
        terrainProvider: Cesium.createWorldTerrain(),//显示地形
        geocoder: false, // 地理位置查询定位控件
        homeButton: false, // 默认相机位置控件
        timeline: false, // 时间滚动条控件
        navigationHelpButton: false, // 默认的相机控制提示控件
        fullscreenButton: false, // 全屏控件
        scene3DOnly: true, // 每个几何实例仅以3D渲染以节省GPU内存
        baseLayerPicker: false, // 底图切换控件
        animation: false, // 控制场景动画的播放速度控件
        selectionIndicator: false, //关闭绿色的方框
        infoBox: false, //关闭原生的弹窗
      });
      // 相机移动到指定位置
      viewer.camera.flyTo({
        destination: Cesium.Cartesian3.fromDegrees(115.879192319, 31.66929273, 4000),//飞到指定坐标
        orientation: {
          heading: Cesium.Math.toRadians(180.0),
          pitch: Cesium.Math.toRadians(-85.0),
          roll: Cesium.Math.toRadians(0.0),
        },
      });
      viewer._cesiumWidget._creditContainer.style.display = "none"; // 隐藏版权

      viewer.entities.add({
        id: "main",
        position: Cesium.Cartesian3.fromDegrees(
          115.879192319,
          31.66929273,
          145
        ),
        orientation: Cesium.Transforms.headingPitchRollQuaternion(
          Cesium.Cartesian3.fromDegrees(115.879192319, 31.66929273, 145),
          new Cesium.HeadingPitchRoll(Cesium.Math.toRadians(92.0), Cesium.Math.toRadians(0.0), Cesium.Math.toRadians(0.0))
        ),
        model: {
          uri: this.url,
        },
      });
      viewer.scene.globe.depthTestAgainstTerrain = true; ////重要  固定物体在位置上
      viewer.scene.screenSpaceCameraController.minimumZoomDistance = 100; //限制地图浏览范围的观看最低高度
    },
  },
};
</script>
<style lang='scss' scoped>
.cesium {
  position: absolute;
  width: 100%;
  height: 100%;
  #cesiumContainer {
    width: 100%;
    height: 100%;
  }
}
</style>

这里面存在最大的坑就是glb文件必须放在public文件夹里面

Cesium添加GLB文件,也就是网格(GLTF)二进制文件,需要一些步骤。以下是添加GLB文件的基本步骤: 1. **准备GLB文件**:首先,你需要一个.glb文件,这是一个二进制格式的文件,包含了模型的数据。 2. **使用二进制模式加载模型**:Cesium提供了一个方法,可以用来加载.glb文件。在Cesium的Viewer类中,你可以使用`loadArrayBuffer`方法来加载.glb文件。示例如下: ```javascript viewer.entities.add({ id : 'globe', position : Cesium.Cartesian3.fromDegrees(-123.0744619, 43.6225586), model : { uri : 'path_to_your_glb_file', // 这里填入你的.glb文件的路径 heightReference : Cesium.HeightReference.CLAMP_TO_GROUND, minimumPixelSize : new Cesium.Cartesian2(128, 128) // 设置最小像素大小,这会影响模型的加载速度和显示效果 } }); ``` 这段代码会将你的GLB文件加载到Cesium的Viewer中。请注意替换`'path_to_your_glb_file'`为你的.glb文件的实际路径。 3. **处理加载错误**:加载模型可能会失败,例如因为文件路径错误或者文件格式不正确。你可以通过监听`viewer.errorEvent`来处理这种情况。当模型加载失败时,这个事件会被触发并抛出一个错误对象。 以上就是在Cesium添加GLB文件的基本步骤。请注意,这只是一个基本的例子,你可能需要根据你的具体需求进行调整。例如,你可能需要处理模型加载完成后的回调函数,或者处理模型加载过程中的进度更新等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值